// scaup
// (c) 2010, Normen Müller, normen.mueller@gmail.com  
// $Id: PimpedType.scala 97 2010-08-23 09:00:50Z normen.mueller $
package scaup

/** Sub class to create a wrapper type for `T` as documentation that the sub class follows the 'pimp my library' pattern.
 *  http://www.artima.com/weblogs/viewpost.jsp?thread=179766
 *  <p/>
 *  The companion object provides an implicit conversion to unwrap `value`.
 *  @thanks  Scalaz#PimpedType
 *  @author  <a href="mailto:normen.mueller@googlemail.com">Normen M&#xFC;ller</a>
 *  @version 0.0.6
 */
trait PimpedType[T] {
  val value: T
}

/** @thanks  Scalaz#PimpedType
 *  @author  <a href="mailto:normen.mueller@googlemail.com">Normen M&#xFC;ller</a>
 *  @version 0.0.6
 */
object PimpedType {
  implicit def UnwrapPimpedType[T](p: PimpedType[T]): T = p.value
}
